Configuring 3CX AI Server for Transcription
- Introduction
- About Examples in This Document
- Machine Host Requirements
- Hardware Specifications
- BIOS Settings
- Operating System
- Firewall Configuration
- Configure Your System
- Run Installation Command
- Transcription Installation Wizard
- Using Custom SSL Certificates
- Creating Certs with Certbot
- Automatic Certificate Renewal
- 3CX Provided FQDN Policy
- Verify Connectivity with Transcription Server
- Transcription Server Updates
- Scheduled
- On-Demand
- Configure Transcription
- See also
Introduction
This guide is valid for 3CX Phone Systems on Version 20 U9 and below and explains how to install and configure the 3CX AI Server for on-premise or cloud use. If you’re running 3CX V20 U10 or above please refer to this guide.
The 3CX AI Server adds AI-powered transcription, speaker detection, and transcript analysis to your 3CX Phone System. It can be deployed on-premise or in the cloud and integrates directly with the Admin Console.
Note: Available for AI edition, with 16SC or higher.
About Examples in This Document
This document uses example.com as the 3CX FQDN, and wmr.3cx-example.com as the Transcription machine's FQDN; you will need to substitute for your own FQDNs.
Machine Host Requirements
Hardware Specifications
- GPU: Minimum Recommended (Fast): Nvidia 24GB RTX GPU
- CPU: Minimum: 4vCPU, Recommended: 6vCPU
- RAM: Minimum: 24GB
- Storage: Minimum: 20GB Free Disk Space
- On-premise or Cloud
BIOS Settings
- Secure Boot: Disabled
- CSM: Disabled
- Resize BAR Support: Disabled (might require a double reboot)
- IOMMU: Enabled
Operating System
- OS: Debian 12 (Fully Updated)
Firewall Configuration
Open the following TCP ports for inbound traffic to the machine:
- TCP 61443 – allow only from PBX IP
- TCP 80 – for Let’s Encrypt SSL certificate creation/renewal; typically this is not necessary if you are using custom SSL certificates
Configure Your System
- Log in to your transcription machine via SSH and elevate to root
- Update your system:
apt-get update
apt-get upgrade
- Install required prerequisites:
apt -y install curl apt-transport-https gnupg gpg wget iptables-persistent build-essential dkms
- To ensure all system updates take effect (particularly kernel image upgrades), reboot the system now:
reboot
- Check if NVIDIA drivers are already up and running:
nvidia-smi
- If you get a command not found response, then you need to install NVIDIA drivers:
apt -y install linux-headers-$(uname -r)
wget https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/cuda-keyring_1.1-1_all.deb
dpkg -i cuda-keyring_1.1-1_all.deb
apt update
apt -y install nvidia-open
apt -y install nvidia-driver-cuda nvidia-kernel-open-dkms
reboot
- After the reboot, confirm things are running successfully:
nvidia-smi
- …which will show you the machine's current status:
user@wmr-3cx-example-com:~$ nvidia-smi
Mon Jan 26 09:04:40 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 590.48.01 Driver Version: 590.48.01 CUDA Version: 13.1 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA L4 On | 00000000:00:03.0 Off | 0 |
| N/A 40C P8 12W / 72W | 0MiB / 23034MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
user@wmr-3cx-example-com:~$
Run Installation Command
- From Admin, navigate to Admin > Integrations > Transcription
- Set the Transcription Provider to 3CX Transcription Engine (Installed Locally)
- Click the Proceed button
- The Transcription page will now display the installation command to run on your transcriber machine; click the Copy button to copy the command to the clipboard
- Log in to your transcription machine via SSH and elevate to root
- Run the installation command, similar to the following example:
source <(curl -s https://example.com/webmeeting/onboardai/99887766-aabb-1122-ccdd-abcdef123456)
Transcription Installation Wizard
You will be asked to choose whether to use Custom SSL Certificates or certificates generated with Let's Encrypt.
Using Custom SSL Certificates
- Place your certificate files in PEM format into /opt/3cxwm/cert:
- server.crt must contain your public key (and possibly your certificate chain)
- server.key must contain your private key
- Ensure proper permissions are set on your certificate files:
sudo chown www-data:www-data /opt/3cxwm/cert/server.*
sudo chmod 600 /opt/3cxwm/cert/server.*
Creating Certs with Certbot
To create your own certificates with Let's Encrypt Certbot:
- Log in to your 3CX AI Server via SSH and elevate to root
- Execute the following commands:
sudo apt-get install certbot
sudo certbot certonly --standalone --preferred-challenges http -d wmr.3cx-example.com
cp /etc/letsencrypt/live/wmr.3cx-example.com/fullchain.pem /opt/3cxwm/cert/server.crt
cp /etc/letsencrypt/live/wmr.3cx-example.com/privkey.pem /opt/3cxwm/cert/server.key
Automatic Certificate Renewal
To automate certificate renewal with Let's Encrypt Certbot:
- Log in to your 3CX AI Server via SSH and elevate to root
- Run nano /root/certupdate.sh to create the script, and set the contents as follows:
#!/bin/bash
cp /etc/letsencrypt/live/wmr.3cx-example.com/fullchain.pem /opt/3cxwm/cert/server.crt
cp /etc/letsencrypt/live/wmr.3cx-example.com/privkey.pem /opt/3cxwm/cert/server.key
chown www-data:www-data /opt/3cxwm/cert/server.*
chmod 600 /opt/3cxwm/cert/server.*
- Make the script executable:
chmod +x /root/certupdate.sh
- Edit the crontab:
crontab -e
- Add the following to the crontab:
0 3 * * * /root/certupdate.sh
3CX Provided FQDN Policy
If you're using a 3CX-provided FQDN (e.g. during install via Option 1), keep in mind that:
- The FQDN will be deleted if the 3CX AI Server is removed from the PBX UI
- If your PBX does not contact wmr.3cx.net within 30 days, the FQDN will be deleted automatically.
Verify Connectivity with Transcription Server
To verify connectivity from PBX to 3CX AI Server, you can execute the following command on the PBX:
[email protected]:~$ curl -w "\n" https://wmr.3cx-example.com:61443/webmeeting
OK
…which should show OK for a successful response.
You can also navigate to Admin > Integrations > Transcription to check your Transcription Engine Status.
Transcription Server Updates
Scheduled
The 3CX AI Server checks and automatically updates to the latest release. The auto-update task runs every Sunday at 1:00 AM (Server time).
On-Demand
If you wish to update to the latest version before the scheduled update window:
- Log in to your 3CX AI Server via SSH and elevate to root
- Execute the following commands:
sudo apt update
sudo apt -y upgrade
Configure Transcription
Visit this document to learn how to enable and configure transcription for your chosen endpoints.
See also
- Configuring OpenAI / Whisper for Transcription
- Voicemail & Recording Transcription using Google Cloud.
- Google Cloud Storage & Speech API V2 Transcription for Recordings/Voicemail
Last Updated
This document was last updated on 9 September 2026